# 发起请求获取主页上的信息
# 进入图片的详情页面
# 对详情页进行请求获取详情页的信息
# 对响应过来的内容进行解析，获取高清图片的资源路径
# 下载图片保存在本地即可
# 本次案例使用BeautifulSoup进行页面解析，使用前需要安装

import requests
from bs4 import BeautifulSoup
import time
url="https://www.keaitupian.cn/weimei/"
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36'
}
resp=requests.get(url,headers=headers)
# 解决中文乱码问题
resp.encoding="UTF-8"
main_page=resp.text
# 对响应回来的文本进行解析
bs=BeautifulSoup(main_page,"html.parser")
# 在BeautifulSoup中常见的有两个方法
# find表示查找到一个标签
# find_all表示找到一组标签
# 此处表示定位到class属性为related_img的ul标记，下面的所有a标签
alist=bs.find("ul",class_="related_img").find_all("a")
for item in alist:
    # 获取a标签中的href属性
    child_url=item.get("href")
    # 获取到的href属性中有子页面的链接地址，以及javascript:。此处我们需要对不需要的内容进行过滤处理
    if child_url!="javascript:":
        # 对可用的路径进行处理
        child_url="https://www.keaitupian.cn"+child_url
#         对子页面进行请求
        child_page=requests.get(child_url)
        child_page.encoding="UTF-8"
#         拿到子页面的信息
        child_content=child_page.text
        cbs=BeautifulSoup(child_content,"html.parser")
        child_img=cbs.find("p",attrs={"align":"center"}).find_all("img")
        for item in child_img:
            # 拿到页面中图片的路径地址
            child_img_src=item.get("src")
            # 对图片的路径地址进行请求
            img_resp=requests.get(child_img_src)
#             避免图片名字冲突，需要对每张图片的名字进行处理
#             将图片路径的后缀作为图片名字即可
            img_name=child_img_src.split("/")[-1]
#             将响应回来的图片进行保存在本地即可
            open("img\\"+img_name,"wb").write(img_resp.content)
            print(img_name,"打印完毕")
            # 访问频率不能过高，每次访问间隔1秒
            time.sleep(1)
